import string
import  urllib.request
# 从parse库中导入quote类
from urllib.parse import quote
from bs4 import BeautifulSoup


def nospace(word):
    return word.strip().replace(" ","").replace("\n","")

city = input('请输入城市：')
code = {
    '北京': '530',
    '上海': '538',
    '广州': '763',
    '深圳': '765',
    '天津': '531',
    '武汉': '736',
    '西安': '854',
    '成都': '801',
    '沈阳': '599',
    '南京': '635',
    '杭州': '653',
    '苏州': '639',
    '重庆': '551',
    '长沙': '749',
    '厦门': '682',
    '南昌': '691'
}
city = code[city]
jobName = input('请输入岗位：')
url = 'https://sou.zhaopin.com/?jl='+city+"&kw="+jobName+"&p=1"

#如果url中包含中文，需要通过quote转义,不然会报错
#url中允许的字符有   数字、字母、一些特殊符号 User-Agent:
#Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0
url = quote(url,safe=string.printable)
# 发送HTTP请求
resp = urllib.request.urlopen(url)
#获取页面内容read()方法用来获取响应内容 是二进制格式
#需要decode()转义成utf-8
content = resp.read().decode('utf-8')
#通过BeautifulSoup对象去解析页面，同时要安装解析器，推荐lxml
soup = BeautifulSoup(resp,"lxml")
jobList = soup.select(".joblist-box__item")
job_list = []
for job in jobList:

    job_dic = {}

    job_name = job.select('.jobinfo__name')[0].get_text()

    job_sal = job.select(".jobinfo__salary")[0].getText()

    job_sal = nospace(job_sal)
    if '天' in job_sal:
        job_sal = int(job_sal.split("-")[0])*30
    elif('千' in job_sal):
        job_sal = int(job_sal.split("千")[0])*1000
    elif ('万' in job_sal):
        job_sal = float(job_sal.split("万")[0])*10000
    else:
        job_sal = 5000
    company_name=nospace(job.select('.companyinfo__name')[0].get_text())

    job_msg = job.select(".jobinfo__other-info-item")

    job_place = nospace(job_msg[0].getText())

    job_exp = nospace(job_msg[1].getText())

    job_education = nospace(job_msg[2].getText())

    job_dic["job_name"] = job_name
    job_dic["job_sal"] = job_sal
    job_dic["company_name"] = company_name
    job_dic["job_place"] = job_place
    job_dic["job_exp"] = job_exp
    job_dic["job_education"] = job_education
    job_list.append(job_dic)
for i in job_list:
    print(i)




